A multiplexer (MUX) is a commonly used circuit element for selectively routing data or signals in integrated circuit designs. Multiplexers of different types are known in the art. In a simplest form, a 2-to-1 multiplexer has two data inputs, a select input, and an output. Based on the select input, the multiplexer operates to route one of the inputs to the output. A plurality of multiplexers can be arranged to form a multi-level multiplexer tree structure to selectively route data from a large number of inputs to, e.g. a single output.
As a typical application, a multiplexer tree structure can be used to control sequential access to a plurality of data storage units. For example, in a First-in-First-out (FIFO) memory that mainly comprises latches or flip-flops as storage units, a multiplexer tree can be a coupled between an output port and the storage units and serve to output the signals in the same sequence as the data is written into the FIFO. Conventionally, data are successively written to and read from the storage units according to the incremental linear sequence of the storage unit addresses, e.g. 0, 1, 2, 3 . . . .
Essentially a multiplexer comprises switching logic and is implemented as a combination of switches, such as CMOS transistors for instance. When a multiplexer toggles in response to a selection signal transition, the transistors in the multiplexer switch, for example, between on and off mode, and can dissipate a non-negligible amount of dynamic power due to, for instance, charging and discharging of load capacitances or short circuit power dissipation and other well-known events. In contrast, if the multiplex does not toggle, or remains in the same selection state, it consumes much less static power. Thus, the dynamic power consumed by a multiplexer tree increases accumulatively with the toggling activities and can become significant where the multiplexer tree is used to select from a large number of inputs.
Thus, the numerosity of the toggling activities in a multiplexer tree can be liable for dramatic dynamic power consumption during operation of an FIFO memory, or any other sequential logic that is coupled with such a multiplexer tree. The high power dissipation issue is particularly pronounced for low-power integrated circuit systems that have been commonly used in portable electronic devices, because the devices are often equipped with a small-size battery with limited capacity and yet often expected to operate in circumstances where wall power is unavailable.